La función `header` en PHP es una herramienta fundamental utilizada para enviar encabezados HTTP sin necesidad de utilizarlos en el cuerpo del documento. Los encabezados HTTP son componentes cruciales que permiten la comunicación entre el servidor y el navegador. Estos encabezados controlan el flujo y la interpretación de la información enviada, permitiendo realizar tareas como redireccionar a otra página, especificar el tipo de contenido o manejar cookies.
La función `header` se utiliza para enviar un encabezado HTTP al cliente. Un encabezado HTTP es una línea de texto que el servidor web usa para transmitir al navegador información sobre la respuesta que está enviando. Por ejemplo, al enviar encabezados, puedes cambiar el tipo de contenido, redirigir al usuario a otra página o especificar información de codificación.
La sintaxis básica de `header` es:
```php
header(string $header, bool $replace = true, int $response_code = 0)
```
1. $header: Un string que define el encabezado enviado. Este parámetro es obligatorio.
2. $replace: Un booleano opcional que indica si el encabezado debe reemplazar un encabezado similar previamente definido o no. Por defecto es `true`.
3. $response_code: Un entero opcional que fuerza el código de respuesta HTTP a ser enviado.
Uno de los usos más comunes de `header` es redirigir al usuario a otra página. Por ejemplo:
```php
header(“Location: https://www.ejemplo.com”);
exit();
```
El `exit()` se usa comúnmente después de `header` para asegurarse de que no se ejecute ningún código adicional después de la redirección.
Puedes usar `header` para especificar el tipo de contenido que el navegador debe esperar. Esto es útil cuando estás generando tipos de datos como JSON:
```php
header(“Content-Type: application/json”);
echo json_encode($data);
```
Controlar si el navegador debe almacenar en caché la respuesta puede hacerse utilizando encabezados apropiados. Por ejemplo:
```php
header(“Cache-Control: no-cache, no-store, must-revalidate”);
header(“Pragma: no-cache”);
header(“Expires: 0”);
```
- Forzar descarga de un archivo: Puedes usar `header` para forzar al navegador a descargar un archivo en lugar de mostrarlo en línea.
```php
$file = ‘path/to/file.zip’;
header(‘Content-Description: File Transfer’);
header(‘Content-Type: application/octet-stream’);
header(‘Content-Disposition: attachment; filename=”’.basename($file).’”’);
readfile($file);
exit();
```
- Redirigir con un código de estado específico: Para realizar una redirección con un código de estado HTTP especial, puedes hacer:
```php
header(“Location: https://www.ejemplo.com”, true, 301);
```
- Antes de la salida: La llamada a `header` debe realizarse antes de que se genere cualquier salida desde el script PHP, como texto plano, HTML o incluso espacios en blanco, ya que de lo contrario causará un error.
- Encabezados múltiples: Puedes enviar múltiples encabezados antes de la salida.
1. Documentación oficial de PHP:
[PHP.net – header](https://www.php.net/manual/es/function.header.php)
2. Mozilla Developer Network (MDN):
[HTTP headers – MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers)
Utilizar la función `header` correctamente puede incrementar significativamente la flexibilidad y el control que tienes sobre el comportamiento de tus aplicaciones web.